home *** CD-ROM | disk | FTP | other *** search
- THYSHELL.PRG V. 1.0a
- Eine vielseitige Shell für den Atari ST
-
- In GFA-Basic (V. 2.02) geschrieben und mit dem GFA-Basic-
- Compiler (V. 2.02) kompiliert von
-
- Rainer Thiel
- Königsteiner Str. 3
- D-6200 Wiesbaden,
-
- bei dem auch alle Rechte verbleiben. Dieses Programm ist
- jedoch PUBLIC DOMAIN. Es darf daher frei benutzt, kopiert
- und weitergegeben, nicht aber verkauft, gegen eine Gebühr
- verliehen oder überlassen oder sonst in irgendeiner Weise
- kommerziell genutzt werden.
-
-
- 1. Einführung
-
- THYSHELL.PRG ist beileibe nicht das erste Programm seiner
- Art. Es gibt bereits eine ganze Anzahl von Shells für den
- Atari-ST. Die meisten davon sind auf ganz bestimmte Pro-
- grammpakete spezialisiert, deren bequeme Benutzung sie
- ermöglichen. Es gibt aber auch schon einige solcher Pro-
- gramme, die sich an die speziellen Bedürfnisse des Anwenders
- anpassen lassen. Zu dieser Gruppe gehört auch THYSHELL;
- THYSHELL erlaubt eine solche Anpassung in ganz besonders
- hohem Maße.
-
- Gleich zu Beginn möchte ich ein mögliches Mißverständnis
- ausräumen: THYSHELL ist k e i n Command-Line-Interpre-
- ter, der für den Atari-ST eine MS-DOS-ähnliche Oberfläche
- herstellte, sondern eine GEM-Shell, die auch den direkten
- Aufruf von Accessories erlaubt. Sie kann und will daher
- auch hervorragende Programme wie etwa GULAM nicht erset-
- zen.
-
- THYSHELL ist vielmehr für alle diejenigen gedacht, die
- eine Festplatte besitzen und eine Reihe von Programmen -
- gleichgültig welche - regelmäßig benutzen und diese bequem
- aufrufen möchten. THYSHELL bietet dabei eine Reihe nützli-
- cher Funktionen, die dem Programmierer ebenso wie dem reinen
- Anwender zustatten kommen, die ich aber in jedem anderen PD-
- Programm dieser Art vermißt habe. Deshalb habe ich THYSHELL
- geschrieben. Mögen auch andere an dem Nutzen teilhaben!
- Die Qualität einer Shell erweist sich erst durch ihre
- Benutzung. THYSHELL hat eine ganze Reihe von Funktionen, die
- es meines Wissens bisher in keiner anderen Shell dieser Art
- gibt. Lesen Sie bitte auch den Abschnitt "Besondere Eigen-
- schaften von THYSHELL", um darüber Näheres zu erfahren.
-
-
- 2. Die Menüs
-
- Zwei Menüs stehen ihnen in THYSHELL stets zur Verfügung:
- Zum einen das "Desk"-Menü mit dem Copyright-Info und den
- Accessories, die Sie jederzeit und ohne Einschränkungen
- aufrufen können. Versuchen Sie, ein Programm aufzurufen oder
- THYSHELL zu verlassen, während ein (Fenster-) Accessory
- aktiv ist, so erscheint eine Warnmeldung, da dies naturgemäß
- in aller Regel zu Problemen (bis hin zum Systemabsturz)
- führt. Sollten Sie aber einmal gute Gründe haben, das
- Accessory aktiv zu lassen, so ist dies möglich.
- Zum anderen das "File"-Menü. Hier finden Sie den Menü-
- punkt "Run *.PRG (Tab)", über den Sie beliebige Programme
- mit einer Fileselect-Box aufrufen können. Diese Funktion
- erreichen Sie auch durch Drücken der [Tab]-Taste. Außerdem
- finden Sie hier den Menüpunkt "Quit (Esc)" (eigentlich
- überflüssig, oder?), um THYSHELL zu verlassen. Wie üblich
- erfolgt zuvor eine Sicherheitabfrage. Dasselbe erreichen Sie
- durch Drücken der Taste [Esc].
- Alle weiteren Menüs können Sie frei definieren. Wie dies
- möglich ist, erfahren Sie im nächsten Abschnitt.
-
-
- 3. Konfiguration von THYSHELL
-
- Sie können die Möglichkeiten von THYSHELL erst dann voll
- nutzen, wenn Sie Ihre eigenen Bedürfnisse dem Programm in
- einer Textdatei namens THYSHELL.DEF mitteilen. Diese Datei
- muß im selben Verzeichnis wie THYSHELL.PRG stehen. In dieser
- Datei können Sie festlegen, welche Programme Sie von THY-
- SHELL aus über Pulldown-Menüs und evtl. auch über Tastatur
- aufrufen wollen.
- Diese Datei können Sie mit jedem Texteditor (1ST_WORD
- oder Nachfolgeprogrammen, aber auch jedem PD-Texteditor)
- erstellen. THYSHELL.DEF hat folgenden Aufbau:
- Die Datei ist zeilenweise organisiert. In jeder Zeile
- steht ein Menütitel oder ein Menüeintrag mit dem Namen des
- Programms, das durch Anwählen dieses Menüeintrags aufgerufen
- werden soll; außerdem kann noch ein Command-String folgen,
- der dem Programm bei jedem Aufruf übergeben werden soll.
- Jeder Zeile, in der ein Menütitel steht (außer der/dem
- ersten) muß eine Leerzeile vorangehen.
- Eine Zeile, in der ein Menüeintrag steht, enthält:
-
- 1. den Text des Menüeintrags, also z.B. " SIGNUM-Editor "
- oder " GFA-Basic-Interpreter ". Aus ästhetischen Grün-
- den ist es sinnvoll, den Text des Menüeintrags mit
- einem Leerzeichen beginnen und enden zu lassen. - Wenn
- Sie das Programm auch über Tastatur aufrufen wollen,
- so muß der Menüeintrag mit einem Leerzeichen enden.
- Direkt davor muß dann in runden Klammern das Zeichen
- stehen, durch das der Aufruf erfolgen soll, also z.B.
- "(s)". Beachten Sie, daß Großbuchstaben und Kleinbuch-
- staben unterschieden werden: "(s)" und "(S)" werden
- unterschieden! Hinter der schließenden Klammer muß
- aber unbedingt ein Leerzeichen stehen, damit der
- Aufruf funktioniert. Natürlich können Sie auch einen
- beliebigen Text als Menüeintrag angeben, ohne daß
- durch dessen Anwählen ein Programm aufgerufen werden
- soll. Dann entfällt, was gleich unter (2) und (3)
- gesagt werden wird.
-
- 2. Soll durch Anwählen des Menüeintrags ein Programm
- aufgerufen werden, so muß hinter dem Text des Eintrags
- (evtl. mit Leerzeichen) zunächst ein Komma, dann der
- vollständige Dateiname mit Laufwerksbuchstaben und
- Pfadnamen stehen. Zwischen Komma und Name darf (das
- macht man leicht falsch!) kein Leerzeichen stehen.
-
- 3. Hinter dem Namen kann (das bleibt Ihnen überlassen) -
- durch genau e i n Leerzeichen getrennt - (nicht 0,
- nicht 2, nicht 3 ...) ein Text folgen, der dem
- aufzurufenden Programm b e i j e d e m A u f r u f
- als Command-String übergeben wird. Vergleichen Sie zu
- Näherem den Abschnitt über "Besondere Eigenschaften
- von THYSHELL".
-
- Groß- oder Kleinschreibung spielen bei (2) und (3) keine
- Rolle.
- Das alles hört sich komplizierter an als es ist. Daher
- ein paar Beispiele: Nehmen wir an, Sie benutzen Signum2,
- 1st_Word und 2nd_word und programmieren daneben in GFA-Basic
- 2.0, besitzen schon den Interpreter V. 3.0 und verwenden
- auch Omikron-Basic. In GFA-Basic 3.xx haben Sie ein hervor-
- ragendes Programm geschrieben (Sie haben es SUPER.GFA ge-
- nannt), das Sie oft verwenden, aber vorläufig, bis zum
- Erscheinen des Compilers, mit dem Run-Only-Interpreter auf-
- rufen müssen. Dann könnte Ihre Datei THYSHELL.DEF etwa
- folgendermaßen aussehen:
-
- Texte
- Signum-Editor (s) ,E:\SIGNUM2.PRG
- Signum-Druck (S) ,E:\SPRINT.PRG
- S-Zeichensatzed. ,E:\CHSETS\DCS24N.PRG
- -------------------
- ASCII-Editor (1) ,C:\1ST_WORD\1ST_WORD.PRG
- *.HEX ==> *.DOT ,C:\1ST_WORD\INSTALL.PRG
- *.DOT ==> *.HEX ,C:\1ST_WORD\CFGALYSE.PRG
- -------------------
- 2nd Word (2) ,E:\2ND_WORD\2ND_WORD.PRG
- -------------------
- Super (y) ,D:\GFABASIC.304\GFABASRO.PRG super
-
- Basic
- GFA-Basic-Interpreter V. 2.02 (b) ,D:\GFABASIC.202\GFABASIC.PRG init
- Run-Only-Interpreter V. 2.02 ,D:\GFABASIC.202\GFABASRO.PRG
- GFA-Basic-Compiler V. 2.02 (B) ,D:\GFABASIC.202\GFA_BCOM.PRG
- ----------------------------------
- GFA-Basic-Interpreter V. 3.04 (I) ,D:\GFABASIC.304\GFAB_304.PRG init
- Run-Only-Interpreter V. 3.04 (i) ,D:\GFABASIC.304\GFABASRO.PRG
- -----------------------------------
- Omikron-Basic (o) ,D:\OMIKRON.300\OM-BASIC.PRG
-
-
- Beachten Sie die Leerzeichen vor dem Komma: Absolut nötig
- sind sie nur dort, wo davor ein Zeichen in Klammern steht,
- damit durch Drücken der entsprechenden Taste das Programm
- nach dem Komma auch aufgerufen wird. Auf diese Weise können
- Sie den Signum-Texteditor mit "s" (Taste 'S' o h -
- n e [Shift]), das Druckprogramm mit "S" (Taste 'S' m i t
- [Shift]) aufrufen. Jedes über die Tastatur erreichbare
- Zeichen kann zum Aufruf eines Programms verwendet werden -
- wie Sie an 1st- und 2nd-Word sehen, auch etwa Ziffern. Aus
- ästhetischen Gründen lasse ich jeden Menüeintrag auch mit
- einem Leerzeichen beginnen; nötig ist das aber nicht. Hinter
- dem Komma steht der vollständige Name des Programms (s.o.).
- Dazu brauche ich wohl nichts weiter zu sagen.
- Bei den beiden GFA-Basic-Interpretern folgt nach dem
- Dateinamen noch das Wort "init". Dabei handelt es sich um
- die Kommandozeile, die dem Programm bei jedem Aufruf überge-
- ben wird. Ähnliches gilt für Ihr Programm SUPER.GFA: Wenn
- Sie den Menüpunkt "Super" aufrufen oder "y" drücken, so wird
- der Run-Only-Interpreter aufgerufen und ihm zugleich die
- Kommandozeile "SUPER" übergeben. Er lädt daher "SUPER.GFA"
- (falls es im selben Ordner steht) und führt es aus. Wenn Sie
- das Programm SUPER.GFA mit dem Befehl Quit beenden, können
- Sie es so von THYSHELL aus wie ein gewöhnliches ausführbares
- Programm benutzen.
- Vielleicht wundern Sie sich, daß ich dem GFA-Basic-
- Interpreter V. 3.04 einen neuen Namen gegeben habe, obwohl
- er doch in einem anderen Ordner steht als der Interpreter V.
- 2.02. Die Auflösung des Rätsels steht - neben weiteren
- Bemerkungen zur Übergabe von Command-Strings (dort erfahren
- Sie etwa auch, wie man einem jeden beliebigen Programm eine
- Kommandozeile übergeben kann) - in dem Abschnitt über
- "Besondere Eigenschaften von THYSHELL".
- An dieser Stelle bleibt mir nur noch zu bemerken, daß ich
- nur der Übersicht halber die Command-Strings in Kleinbuch-
- staben, den Dateinamen aber in Großbuchstaben geschrieben
- habe. Das Programm unterscheidet Klein- und Großbuchstaben
- im Dateinamen und im Command-String nicht. Beachten sollten
- Sie aber, daß g e n a u e i n Leerzeichen den Command-
- String vom Dateinamen trennen muß; eventuell noch folgende
- Leerzeichen werden sonst als Bestandteil der Kommandozeile
- interpretiert.
- Eine Beispieldatei THYSHELL.DEF, die erprobt ist und bei
- mir ständig Anwendung findet, habe ich beigegeben.
-
-
- 4. Besondere Eigenschaften von THYSHELL
-
- In diesem Abschnitt gehe ich auf einige Funktionen und
- Eigenschaften des Programms ein, die Ihnen die Arbeit
- erheblich erleichtern können und zum größten Teil weit über
- den Standard derartiger Shell-Programme hinausgehen. An
- einigen Stellen gehe ich auch auf das eine oder andere
- programmtechnische Detail ein. Werden Sie daher nicht mut-
- los, wenn Sie - falls Sie nicht selbst programmieren - nicht
- alles verstehen: Ich habe mich jedenfalls bemüht, alles, was
- zur vollen Nutzung von THYSHELL nötig ist, so einfach wie
- möglich darzustellen.
-
-
- a) Speicherplatz
-
- Das Programm reserviert sich für eigene Zwecke 10000
- Bytes Speicherplatz, die zur Speicherung der Konfigura-
- tion und zur Aufrechterhaltung der Verwaltung nötig sind.
- Dieser Speicherplatz sollte in aller Regel genügen.
- Definieren Sie aber sehr umfangreiche Menüs mit vielen
- Einträgen, so kann es schon einmal zu Problemen kommen.
- In diesem Falle haben Sie die Möglichkeit, mehr
- Speicher für THYSHELL anzufordern. Dies können Sie tun,
- indem Sie a l s e r s t e Z e i l e in die Konfigura-
- tionsdatei THYSHELL.DEF eine mit dem Zeichen "#" begin-
- nende (dezimale) Zahl einfügen, die größer als 10000 sein
- sollte (andernfalls bleibt es bei 10000 Bytes). So führt
- die Zeile: "#30000" dazu, daß sich das Programm 30000
- Bytes für die Verwaltung reserviert. Die Zahl "#30000"
- (oder was immer Sie wünschen) muß (natürlich ohne Anfüh-
- rungszeichen, aber mit '#') am Anfang der ersten Zeile
- stehen. Alles, was hinter der Zahl folgt und sich nicht
- als Zahl interpretieren läßt, wird ignoriert. - Beachten
- Sie jedoch, daß es nicht möglich ist, den von THYSHELL
- verbrauchten Speicher zu verringern: Geben Sie eine Zahl
- an, die kleiner als 10000 ist, so reserviert sich das
- Programm dennoch 10000 Bytes.
-
-
- b) Kommandozeilen
-
- Command-Strings (Kommandozeilen) sind Befehlszeilen,
- die einem Programm bei dessen Aufruf übergeben werden
- können. Dadurch ist es möglich, die Arbeitsweise eines
- Anwenderprogramms zu beeinflussen - selbstverständlich
- nur dann, wenn das Programm den Command-String auch
- ausliest und berücksichtigt. Sicher wissen Sie, daß man
- für ein Programm eine "Anwendung anmelden" kann - dies
- geschieht über den gleichnamigen Menüpunkt im Desktop. So
- kann man etwa erreichen, daß durch Anklicken einer
- "*.SDO"-Datei SIGNUM2.PRG gestartet und die entsprechende
- Datei geladen wird - vorausgesetzt, die Datei und das
- Programm stehen im selben Verzeichnis oder das Programm
- im Hauptverzeichnis. Klickt man vom Desktop aus eine
- Datei an, für die eine Anwendung angemeldet ist, so
- übernimmt das Betriebssystem freundlicherweise die Auf-
- gabe, einen entsprechenden Command-String an das Programm
- zu übergeben. Beim Aufruf aus einer Shell wie THYSHELL
- muß dies natürlich das Shell-Programm tun.
-
- ==> Es folgen einige programmtechnische Erörterungen, die
- Sie auch überlesen können; lesen Sie dann bei ***
- weiter!
-
- Das Desktop-Programm übergibt die Kommandozeile auf
- zwei völlig verschiedene Weisen: Zum einen schreibt es
- ihn mit der AES-Funktion SHEL_WRITE in einen Puffer, aus
- dem ihn das aufgerufene Programm mittels SHEL_READ wieder
- auslesen kann; zum anderen schreibt es ihn in die zweite
- Hälfte der Basepage des aufgerufenen Programmes, von wo
- man ihn ebenfalls relativ einfach wieder auslesen kann
- (in GFA-Basic unter Verwendung der Systemvariablen BASE-
- PAGE). In beiden Fällen sollte die Kommandozeile - allen
- Programmierern sei's ans Herz gelegt - folgenden Aufbau
- haben: Anzahl der folgenden Bytes als ASCII-Code, Komman-
- dozeile, Nullbyte; in GFA-Basic also:
-
- command_string$=CHR$(LEN(cmd$))+cmd$+CHR$(0)
-
- wenn cmd$ die Information ist, die man dem aufgerufenen
- Programm übermitteln will (etwa der Dateiname
- "BRIEF.SDO").
- An dieses Format sollte man sich unbedingt halten,
- wenn man mit solchen Aufrufen arbeitet. Zumeist wird die
- Kommandozeile von Anwenderprogrammen aus der Basepage
- ausgelesen. Es ist daher nicht verwunderlich, daß die
- meisten Shells - soweit sie überhaupt die Übergabe von
- Command-Strings erlauben - diese ausschließlich über die
- GEMDOS-Funktion p_exec übergeben, die ja ohnehin aufgeru-
- fen werden muß, wenn man ein Programm ausführt. Leider
- gibt es bemerkenswerte Ausnahmen, etwa SIGNUM. Nachdem es
- in SIGNUM1 gar keine Möglichkeit gab, den Editor per
- "Anwendung anmelden" zum Laden des gewünschten Dokuments
- zu überreden, ist dies jetzt in SIGNUM2 problemlos
- möglich. Dabei handelt es sich aber wohl um ein
- "Abfallprodukt" des gegenseitigen Aufrufs von Editor und
- Druckprogramm mittels SHEL_WRITE (weshalb auch beide im
- selben Verzeichnis stehen müssen). Deshalb wird in SI-
- GNUM2 der Command-String auch mittels SHEL_READ ausgele-
- sen, eine Übergabe durch p_exec führt nicht zum Erfolg.
- THYSHELL übergibt alle Kommandozeilen, die übergeben
- werden können, sowohl mittels SHEL_WRITE als auch mittels
- p_exec, wie es auch das Desktop tut.
-
- *** Da THYSHELL sich bei der Übergabe von Kommandozeilen
- genauso verhält wie das Desktop, werden aus THYSHELL
- übergebene Kommandozeilen auch von allen Programmen
- erkannt und berücksichtigt, die sich mit "Anwendung
- anmelden" starten lassen. Aus THYSHELL aber lassen sich -
- im Gegensatz zum Desktop, nicht nur einfache Dateinamen
- ohne Pfadangabe, sondern beliebige Command-Strings
- übergeben. So ist es problemlos möglich, etwa
- SIGNUM2.PRG, gleichgültig wo es steht, mit einer Zeile
- wie:
-
- e:\diss\txt_übsg\stas1txt.sdo
-
- aufzurufen. Vorsicht aber bei Umlauten in Dateinamen: Da
- sie als Sonderzeichen gelten, ist es im Unterschied zu
- sonst nicht gleichgültig, ob Sie als Groß- oder als
- Kleinbuchstaben dastehen.
-
- ==> Solange Sie nicht in GFA-Basic 3.xx programmieren,
- können Sie den folgenden Abschnitt überlesen und bei
- "***" weiterlesen.
-
- Leider ist es beim GFA-Basic-Interpreter V. 3.04 D
- (dies ist die Version, die ich besitze) nicht möglich,
- ein *.GFA-File durch "Anwendung anmelden" zu starten.
- Zwar wird der Editor/Interpreter gestartet, findet aber
- anschließend die Datei nicht, durch die er aufgerufen
- wurde. Dies gilt möglicherweise auch für alle früheren
- Interpreter-Version ab 3.00. Meine Anfrage bei GFA-Basic
- ergab, daß dieses Problem ab dem nächsten Update besei-
- tigt sein wird. Das Problem beruht offenbar auf dem
- Fehler, daß das führende Byte des Command-Strings, das
- die Anzahl der folgenden Bytes enthalten sollte, fälsch-
- lich als erstes Byte der eigentlichen Kommandozeile
- interpretiert wird, was zu der Fehlermeldung "Datei nicht
- gefunden" führt. In THYSHELL wird dieser Fehler umgangen,
- indem der Command-String entsprechend abgeändert wird,
- wenn eine entsprechende Version des Interpreters aufgeru-
- fen wird. Damit THYSHELL weiß, daß es sich um einen
- solchen, fehlerhaft arbeitenden Interpreter handelt, muß
- dieser den Dateinamen "GFAB_304.PRG" tragen. Wird ein
- Programm dieses Namens von THYSHELL aus aufgerufen, so
- wird die eventuell übergebene Kommandozeile entsprechend
- angepaßt. - Der zugehörige Run-Only-Interpreter arbeitet
- übrigens korrekt und braucht nicht umbenannt zu werden.
- Sicher ist die Übergabe von Command-Strings beim Run-
- Only-Interpreter auch interessanter. Ich habe oben ("3.
- Konfiguration von THYSHELL") angedeutet, wie man so ein
- GFA-Basic-Programm von THYSHELL aus nutzen kann, als wäre
- es ein eigenständiges ausführbares Programm (Run-Only-
- Interpreter mit dem entsprechenden Dateinamen als Komman-
- dozeile aufrufen, aber einen eigenen Menüeintrag vorse-
- hen). Aber auch bei den Editor/Interpretern ist dies
- sinnvoll, wenn man bei Arbeitsbeginn Voreinstellungen im
- Interpreter vornehmen möchte, die man nicht patchen kann
- oder möchte. Dazu kann man ein Programm schreiben, dessen
- Namen man beim Aufruf des Interpreters als Kommandozeile
- übergibt und das sich am Schluß mit NEW selbst löscht.
- Für den Interpreter V. 2.02 habe ich z.B. folgendes
- Programm geschrieben, das ich bei jedem Aufruf abarbeiten
- lasse:
-
- CHDIR "\GFABASIC.202\PROGRAMS.ALG"
- DEFLIST 0
- NEW
-
- Für V. 3.04 D dagegen hatte ich anfangs folgendes
- Programm verfaßt, mit dem die Variablentypen auf Integer
- festgelegt, einige Funktionstasten definiert und DEFLIST
- 2 eingestellt wird:
-
- CHDIR "\GFABASIC.304\PROGRAMS"
- DEFINT "a-z"
- KEYDEF 1,CHR$(27)+"RUN "
- KEYDEF 11,CHR$(27)+"SAVE "
- KEYDEF 2,"~INP(2)"
- KEYDEF 3,"CLS"+CHR$(13)
- NEW
-
- Zwar kann man die Voreinstellung für DEFLIST auch
- patchen, doch ist das nicht jedermanns Sache. Außerdem
- ist in der Dokumentation, die zur Version 3.04 D des
- Interpreters auf Diskette mitgeliefert wurde, das Datei-
- Offset für diesen Patch falsch angegeben. Statt "SEEK
- #1,80" muß es - diese Information habe ich von GFA-
- Systemtechnik und habe sie schon erfolgreich angewandt -
- "SEEK #1,96" heißen - wohlgemerkt für den Patch der
- Voreinstellung von DEFLIST und die Version 3.04 D.
- Selbstverständlich kann ich keinerlei Haftung für diese
- Information übernehmen - experimentieren Sie nur mit
- Sicherheitskopien! Durch beide *.GFA-Programme wird
- auch automatisch ein Ordner zum aktuellen gemacht, in dem
- gerade entwickelte Programme liegen (dies ist hilfreich
- z.B. beim Nachladen von Dateien - *.RSC u.ä. - durch die
- Programme).
-
- *** Die Übergabe von Kommandozeilen ist beim Aufruf eines
- Programms von THYSHELL aus in folgender Weise möglich:
-
- - bei Aufruf über das Menü oder über die Tastatur, indem
- in der Konfigurationsdatei THYSHELL.DEF hinter dem Datei-
- namen, durch genau ein Leerzeichen getrennt, ein Command-
- String vermerkt wird; dieser wird dann b e i j e d e m
- A u f r u f des betreffenden Programms übergeben, wenn
- nicht ein anderer Command-String explizit angegeben wird.
- Vgl. oben unter "3. Konfiguration von THYSHELL".
-
- - durch explizite Angabe einer Kommandozeile, die überge-
- ben werden soll. Dies ist bei jedem Aufruf eines Pro-
- gramms möglich, sei es über Tastatur, sei es über das
- Menü, sei es über "Run *.PRG". Hierbei müssen Sie
- unterscheiden, ob es sich um ein "*.PRG"- bzw. "*.TOS"-
- bzw. "*.APP"-File oder aber um ein "*.TTP"-File handelt.
- Bei "*.TOS"-, "*.APP" und "*.PRG"-Files wird gewöhnlich
- keine Kommandozeile abgefragt. Drückt man jedoch während
- des Aufrufs die rechte Maustaste, so wird man dazu
- aufgefordert, eine Kommandozeile (von max. 128 Zeichen
- Länge) einzugeben. Umgekehrt wird bei "*.TTP"-Files
- gewöhnlich ein Command-String abgefragt. Drückt man beim
- Aufruf die rechte Maustaste, so unterbleibt diese
- Abfrage.
- A n m e r k u n g : Beim Aufruf über das Menü ist es
- problemlos möglich, zusätzlich zur linken auch die
- rechte Maustaste zu drücken. Beim Aufruf über die
- Fileselect-Box ("Run *.PRG") muß man auf den gewohnten
- Doppelklick verzichten und zunächst das Programm (mit
- einfachem Klick) anwählen, dann die rechte Maustaste
- festhalten und schließlich mit [Return] bestätigen.
- Diese etwas umständliche Verfahrensweise ist sicher zu
- vertreten - wenn Sie ein Programm häufig mit
- Kommandozeile aufrufen, werden Sie es ohnehin in die
- Konfiguration aufnehmen.
-
- - Bei der automatischen Ausführung eines Programms beim
- Start von THYSHELL.PRG - s.u. 4 e)
-
-
- c) Signum
-
- Daß ich SIGNUM2-Anwender bin, werden Sie schon gemerkt
- haben. Wie in dem vorigen Abschnitt bereits erwähnt,
- können sich der Editor und das Druckprogramm von SIGNUM2
- (mittels SHEL_WRITE) gegenseitig aufrufen; dabei wird die
- zuletzt bearbeitete Datei automatisch wieder geladen.
- Dies funktioniert auch bei Shells (man muß zwar das
- jeweilige Programm neu aufrufen, doch das Dokument wird
- automatisch geladen) doch gibt es ein Problem: Verläßt
- man SIGNUM mit "beenden" oder "abbrechen", so ignorieren
- dies die meisten Shells, beim nächsten Aufruf von SIGNUM
- wird die Datei dennoch wieder geladen. Nicht so bei
- THYSHELL, das sich hier wieder wie das Desktop verhält.
- Übrigens ist es bei Verwendung einer Shell auch ohne
- weiteres möglich, SIGNUM2 mit "-> Druckprogramm" zu
- verlassen, ein anderes Programm oder ein Accessory aufzu-
- rufen und wieder in SIGNUM2 zurückzukehren: Das zuletzt
- bearbeitete Dokument wird automatisch wieder geladen, bis
- Sie Editor oder Druckprogramm mit "beenden" oder
- "abbrechen" verlassen. Voraussetzung ist natürlich, daß
- nicht ein anderes Programm zwischendurch mit SHEL_WRITE
- arbeitet. Aber das tun die wenigsten, und im schlimmsten
- Falle müssen Sie ihr Dokument eben wieder von Hand laden.
-
-
- d) SHIP.PRG
-
- Daß THYSHELL sich wie das Desktop verhält, hat auch
- einen Nachteil: Wenn Sie ein Programm zum Parken Ihrer
- Festplatte aufrufen, so kann es (bei vorheriger
- Verwendung von SHEL_WRITE, z.B. mit SIGNUM2) sein, daß
- nach der Rückkehr von Ihrem Parkprogramm das Verzeichnis
- einer Festplattenpartition gelesen wird. Dies umgeht
- THYSHELL dadurch, daß nach Ausführung eines Programms
- namens SHIP.PRG stets eine Alert-Box erscheint, die Sie
- zum Ausschalten der Geräte auffordert. Möchten Sie dies
- nicht, so können Sie mit "NEIN" protestieren: Die
- daraufhin erscheinende Fehlermeldung "Daten auf Laufwerk
- ... defekt ..." muß Sie nicht beunruhigen: Es ist
- dieselbe, die auch erscheint, wenn Sie das SHIP.PRG von
- Atari vom Desktop aus von einer Festplattenpartition
- gestartet haben. Hat Ihr Parkprogramm einen anderen
- Namen, so benennen Sie es am besten in SHIP.PRG um. So
- können Sie es aus THYSHELL bequem von der Platte
- aufrufen.
-
-
- e) automatischer Start von Programmen
-
- Es gibt noch eine weitere Möglichkeit, die
- Konfigurationsdatei THYSHELL.DEF zu erweitern. Hinter der
- letzten Zeile mit Menüeinträgen können sie eine Zeile
- "*****" (fünf Asterisken ohne weitere Zeichen, auch keine
- Leerzeichen!) anfügen.
- In allen Zeilen, die danach folgen, wird ein
- vollständiger Dateiname (mit Laufwerksbuchstaben und
- Pfad) und eventuell (optional), durch genau ein
- Leerzeichen getrennt, wieder eine Kommandozeile erwartet.
- Die dort angegebenen Programme werden beim Start von
- THYSHELL.PRG automatisch in der Reihenfolge gestartet, in
- der sie in der Datei THYSHELL.DEF stehen. Dies kann
- jedoch unterbunden werden, indem beim Start von
- THYSHELL.PRG die [Control]-Taste gedrückt und
- festgehalten wird, bis die Menüleiste von THYSHELL zu
- sehen ist.
- Sinn dieser Einrichtung ist es, die Verwendung des
- GFA-Starters zu ermöglichen. Dieser löscht nämlich offen-
- bar Herrn Patzels unverzichtbare Fileselect-Box bei jedem
- Aufruf eines GEM-Programms (werden da Zeiger verändert?).
- So haben Sie nun die Möglichkeit, THYSHELL.PRG von diesem
- (oder auch einem anderen) Autostart-Programm starten zu
- lassen und danach erst Patzels Fileselect-Box zu instal-
- lieren, indem Sie sie von THYSHELL automatisch ausführen
- lassen. Hier kann es eben auch einmal sinnvoll sein, den
- automatischen Aufruf zu unterbinden, etwa wenn Sie THY-
- SHELL verlassen und dann wieder starten (warum eigent-
- lich?). Sonst wird immer neuer Speicher für residente
- Programme verwendet, die eigentlich schon installiert
- sind.
- Denken Sie daran, daß der automatische Aufruf von
- Programmen beim Start von THYSHELL durch D r ü c k e n
- d e r [ C o n t r o l ] - T a s t e verhindert werden
- kann.
-
-
- f) Aufruf von Programmen von Diskette
-
- Sicherlich ist eine Shell wie THYSHELL in erster Linie
- etwas für Festplattenbesitzer. Aber welcher Festplatten-
- besitzer hat sich noch nicht über ein Problem geärgert,
- das bei den meisten Shells regelmäßig auftritt, wenn man
- ein Programm von Diskette aufrufen will, aber gerade die
- falsche Diskette eingelegt hat. Da das Betriebssystem
- (genauer das GEMDOS) intern ein Verzeichnis des Inhalts
- der Laufwerke A: und B: verwaltet, dieses Verzeichnis
- aber nicht ständig aktualisiert wird, führt auch das
- Einlegen der richtigen Diskette nicht zum Erfolg, da das
- GEMDOS noch das alte Verzeichnis für gültig hält und gar
- nicht erst versucht, auf Diskette zuzugreifen.
- Dieses Problem kann man in den meisten Shells nur
- umgehen, indem man eine Fileselect-Box aufruft (falls
- irgenwo eine zur Verfügung steht; es gibt nämlich Shells,
- die es nicht einmal erlauben, ein beliebiges Programm
- aufzurufen!) und dann "zu Fuß" das Verzeichnis für A:
- oder B: aktualisiert.
- In THYSHELL kann dieses Problem nicht auftreten, da
- bei jedem Zugriff auf A: oder B: das entsprechende
- Verzeichnis aktualisiert wird [GFA-Basic-Programmierern
- sei verraten: mit "VOID DFREE(dr%)"]. Die dafür erforder-
- liche Zeit fällt bei Diskettenzugriffen nicht ins Gewicht
- (bei Festplattenzugriffen wird die unnötige Aktualisie-
- rung natürlich nicht durchgeführt) und ist jedenfalls
- weit weniger nervtötend als das andauernde Aufrufen von
- "Run *.PRG", wenn 'mal wieder die falsche Diskette im
- Laufwerk war.
-
-
- 5. Schluß
-
- Ich hoffe, daß Ihnen THYSHELL von Nutzen ist. Ich
- verwende das Programm ständig, so daß ich zuversichtlich
- bin, daß es keine groben Fehler mehr enthält. Ich bin froh
- über jede Zuschrift, besonders aber über solche, die mich
- auf noch nicht erkannte Fehler aufmerksam machen oder zu
- weiteren Verbesserungen anregen. Bei Problemen helfe ich
- gerne - bitte schreiben Sie mir, wenn Sie Schwierigkeiten
- haben.
- Der (vorläufig noch nicht dokumentierte) Quelltext in
- GFA-Basic V. 2.02 ist gegen Einsendung von DM 10,-- und
- einer formatierten Diskette oder gegen Einsendung von DM
- 20,-- bei mir erhältlich.
-
-
- Rainer Thiel
-
-